using System;
using System.Collections;
using System.Collections.Generic;

using ImPM.Data.Base;

namespace ImPM.Data.BusinessObjects
{
    public partial class Task : BusinessBase<int>
    {
        #region Declarations

		
		private string _taskName = String.Empty;
		private System.DateTime _startDate = new DateTime();
		private System.DateTime _startFinish = new DateTime();
		private System.DateTime _duration = new DateTime();
		private System.DateTime _work = new DateTime();
		private int _predecessorID = default(Int32);
		private decimal _cost = default(Decimal);
		private float _completePercetange = default(Single);
		private decimal _fixedCost = default(Decimal);
		
		
		
        #endregion

        #region Constructors

        public Task() { }

        #endregion

        #region Methods

        public override int GetHashCode()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            
            sb.Append(this.GetType().FullName);
			sb.Append(_taskName);
			sb.Append(_startDate);
			sb.Append(_startFinish);
			sb.Append(_duration);
			sb.Append(_work);
			sb.Append(_predecessorID);
			sb.Append(_cost);
			sb.Append(_completePercetange);
			sb.Append(_fixedCost);

            return sb.ToString().GetHashCode();
        }

        #endregion

        #region Properties

		public virtual string TaskName
        {
            get { return _taskName; }
			set
			{
				OnTaskNameChanging();
				_taskName = value;
				OnTaskNameChanged();
			}
        }
		partial void OnTaskNameChanging();
		partial void OnTaskNameChanged();
		
		public virtual System.DateTime StartDate
        {
            get { return _startDate; }
			set
			{
				OnStartDateChanging();
				_startDate = value;
				OnStartDateChanged();
			}
        }
		partial void OnStartDateChanging();
		partial void OnStartDateChanged();
		
		public virtual System.DateTime StartFinish
        {
            get { return _startFinish; }
			set
			{
				OnStartFinishChanging();
				_startFinish = value;
				OnStartFinishChanged();
			}
        }
		partial void OnStartFinishChanging();
		partial void OnStartFinishChanged();
		
		public virtual System.DateTime Duration
        {
            get { return _duration; }
			set
			{
				OnDurationChanging();
				_duration = value;
				OnDurationChanged();
			}
        }
		partial void OnDurationChanging();
		partial void OnDurationChanged();
		
		public virtual System.DateTime Work
        {
            get { return _work; }
			set
			{
				OnWorkChanging();
				_work = value;
				OnWorkChanged();
			}
        }
		partial void OnWorkChanging();
		partial void OnWorkChanged();
		
		public virtual int PredecessorID
        {
            get { return _predecessorID; }
			set
			{
				OnPredecessorIDChanging();
				_predecessorID = value;
				OnPredecessorIDChanged();
			}
        }
		partial void OnPredecessorIDChanging();
		partial void OnPredecessorIDChanged();
		
		public virtual decimal Cost
        {
            get { return _cost; }
			set
			{
				OnCostChanging();
				_cost = value;
				OnCostChanged();
			}
        }
		partial void OnCostChanging();
		partial void OnCostChanged();
		
		public virtual float CompletePercetange
        {
            get { return _completePercetange; }
			set
			{
				OnCompletePercetangeChanging();
				_completePercetange = value;
				OnCompletePercetangeChanged();
			}
        }
		partial void OnCompletePercetangeChanging();
		partial void OnCompletePercetangeChanged();
		
		public virtual decimal FixedCost
        {
            get { return _fixedCost; }
			set
			{
				OnFixedCostChanging();
				_fixedCost = value;
				OnFixedCostChanged();
			}
        }
		partial void OnFixedCostChanging();
		partial void OnFixedCostChanged();
		
        #endregion
    }
}
